// pages/enter-shop/enter-shop.js
// 最大的选择图片的数量
const app = getApp();
let userInfo = app.globalData.userInfo;
const MAX_IMAGE_NUM1 = 1;
const MAX_IMAGE_NUM2 = 9;
const db = wx.cloud.database();
let getName = ''; //商家名称
let getZhuYing = ''; //主营业务
let getTeSe = ''; //商家特色
let getTel = ''; //商家电话
let fileIds1= '';
let getWx ='';

// 文本域输入文字最大的个数
const MAX_WORDS_NUM = 200;
Page({
  /**
   * 页面的初始数据
   */
  data: {
    images1: '', //商家头像
    images: [], //商家图片
    address: null, //商家定位
    selectPhoto: true, //添加图片的元素是否显示
    
  },
  getName(e) { // 获取商家输入的名称
    console.log(e.detail.value)
    getName = e.detail.value
  },
  getZhuYing(e) { // 获取商家输入的主营业务
    console.log(e.detail.value)
    getZhuYing = e.detail.value
  },
  getTeSe(e) { // 获取商家输入的特色
    console.log(e.detail.value)
    getTeSe = e.detail.value
  },
  getTel(e) { // 获取商家输入的电话
    console.log(e.detail.value)
    getTel = e.detail.value
  },
  getWx(e) { // 获取商家输入的微信号
    console.log(e.detail.value)
    getWx = e.detail.value
  },

  // 商家头像图片上传
   upImg1(){
    let suffix = /\.\w+$/.exec(this.data.images1)[0]
    return new Promise((resolve,reject)=>{
      wx.cloud.uploadFile({
        cloudPath: 'shop-header/' + Date.now() + '-' + Math.random() * 10000000 + suffix,
        filePath: this.data.images1,
      })
      .then(res => {
        resolve(res.fileID)
      })
      .catch(err => {
        reject(err)
      })
    })
   
  },
  async send() { // 入驻
    console.log('点击了入驻')
    // 判断输入的文本内容是否为空
    // 判断用户输入的内容  content.trim()去掉空格
    if (getName.trim() === '') {
      wx.showModal({
        cancelColor: 'cancelColor',
        title: '请输入商家名称',
        content: ''
      })

      return;
    }
    if (this.data.images1 === '') {
      wx.showModal({
        cancelColor: 'cancelColor',
        title: '请上传商家头像',
        content: ''
      })
      return;
    }
    if (getZhuYing.trim() === '') {
      wx.showModal({
        cancelColor: 'cancelColor',
        title: '请输入主营业务',
        content: ''
      })
      return;
    }
    if (getTeSe.trim() === '') {
      wx.showModal({
        cancelColor: 'cancelColor',
        title: '请输入商家特色',
        content: ''
      })
      return;
    }
    if (getTel.trim() === '') {
      wx.showModal({
        cancelColor: 'cancelColor',
        title: '请输入联系电话',
        content: ''
      })
      return;
    }
    if (this.data.address === null) {
      wx.showModal({
        cancelColor: 'cancelColor',
        title: '请上传商家位置',
        content: ''
      })
      return;
    }

    wx.showLoading({
      title: '入驻中...',
      mask: true
    })
// 商家头像图片上传
    fileIds1 = await this.upImg1()
    

    // 商家图片上传
    let promiseArr = []
    let fileIds = []
    for (let i = 0, len = this.data.images.length; i < len; i++) {
      let p = new Promise((resolve, reject) => {

        let item = this.data.images[i]

        // 文件扩展名
        let suffix = /\.\w+$/.exec(item)[0]

        wx.cloud.uploadFile({
            cloudPath: 'enter-shop/' + Date.now() + '-' + Math.random() * 10000000 + suffix,
            filePath: item,
          })
          .then(res => {
            // console.log(res, '上传图片成功回调')
            fileIds = fileIds.concat(res.fileID)
            resolve()
          })
          .catch(err => {
            console.log(err, '上传图片失败回调')
            reject()
          })

      })
      promiseArr.push(p)
    }
    // 存入到云数据库
    Promise.all(promiseArr).then(res => {
      db.collection('enter-shop').add({
          data: {
            ...userInfo,
            getName, //商家名称
            getZhuYing, //主营业务
            getTeSe, //商家特色
            getTel, //商家电话
            getWx,//微信号
            address: this.data.address, //商家定位
            img1:fileIds1, //商家头像图片地址
            img: fileIds, //商家图片地址
            liulan: 0, //访问量
            createTime: db.serverDate(), //服务器端的时间
          }
        })
        .then(res => {
          wx.hideLoading()
          wx.showToast({
            title: '入驻成功',
          }).then(res => {
     
            wx.reLaunch({
              url: "/pages/my-shop/my-shop?id=ruzhu_ok"
            });
          })
        })
        .catch(err => {
          wx.hideLoading()
          wx.showToast({
            title: '入驻失败',
          })
        })
    })

  },
  // 选择头像图片1
  onChooseImage1() {
    wx.chooseImage({
      count: MAX_IMAGE_NUM1,
      sizeType: ['original', 'compressed'],
      sourceType: ['album', 'camera'],
      success: res => {
        // tempFilePath可以作为img标签的src属性显示图片
        this.setData({
          images1: res.tempFilePaths[0]
        })
      }
    })
  },
  // 删除头像图片1
  onDelImage1() {
    this.setData({
      images1: ''
    })
  },
  // 获取商家定位
  getmap() {
    wx.chooseLocation({
      success: res => {
        console.log('点击了地图')
        // console.log(res.address)
        // console.log(res.latitude)
        // console.log(res.longitude)
        this.setData({
          address: res
        })

      }
    })

  },
  // 选择图片2
  onChooseImage() {
    // 还可以再选择几张图片
    let max = MAX_IMAGE_NUM2 - this.data.images.length
    wx.chooseImage({
      count: max,
      sizeType: ['original', 'compressed'],
      sourceType: ['album', 'camera'],
      success: res => {
        // tempFilePath可以作为img标签的src属性显示图片
        // const tempFilePaths = res.tempFilePaths
        this.setData({
          images: this.data.images.concat(res.tempFilePaths)
        })
        // 表示选择完以后还可以再选择几张图片
        max = MAX_IMAGE_NUM2 - this.data.images.length
        this.setData({
          selectPhoto: max <= 0 ? false : true
        })
      }
    })
  },
  // 删除图片2
  onDelImage(e) {
    this.data.images.splice(e.currentTarget.dataset.index, 1)
    this.setData({
      images: this.data.images
    })
    if (this.data.images.length == MAX_IMAGE_NUM2 - 1) {
      this.setData({
        selectPhoto: true
      })
    }
  },
  // 放大显示图片2
  onPreviewImage(e) {
    wx.previewImage({
      urls: this.data.images,
      current: e.target.dataset.imagesrc
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})